package com.example.demo.listToTree;


import java.util.List;

/**
 * 树形节点接口
 *
 * @param <T> 该接口的实现类类型，用于限制子节点的类型
 * @param <ID> ID 的类型
 */
public interface TreeNode<T extends TreeNode<T, ID>, ID> {
    /**
     * 获取该节点的 ID
     * 
     * @return 返回该节点的 ID
     */
    ID getId();
    
    /**
     * 获取父节点 ID
     * 
     * @return 返回父节点 ID
     */
    ID getParentId();

    /**
     * 获取该节点下的所有直接子节点
     *
     * @return 返回直接子节点构成的 List 集合
     */
    List<T> getChildren();

    /**
     * 变更该节点下的子节点
     *
     * @param children 子节点集合
     */
    void setChildren(List<T> children);
}